
package lab2;

import java.io.*;//necesario para leer archivos
public class Lab2 {
    public static void main(String[] args) {
        Vec<Integer> calc = new Vec<Integer>();//se crea un nuevo vector calculador
        
        File documento = null;//se preparran las variables que se utilizaran para los documentos
        FileReader lector = null;
        BufferedReader buff = null;
        
        try{
            documento =new File("C:\\Java\\datos.txt");//se cargan los documentos y el lector
            lector = new FileReader(documento);
            buff = new BufferedReader(lector);
            
            String lines;
            
            while((lines=buff.readLine())!=null){//ciclo de lectura
                for (int i=0; i<lines.length(); i++){
                    int comp = (int)lines.charAt(i);//lectura de lineas, caracter por caracter
                    //por medio del codigo ascii se determinara si es un numero o un operador numerico
                    if (comp>=49 && comp <=57){//rango de numeros
                       int num = Integer.parseInt(lines.substring(i, i+1));//lectura de caracteres en numeros
                       calc.push(num);//se ingresa el numero a el vector
                         }
                   
                   else{//caso de division
                       if((int)lines.charAt(i)==47){
                        int n1 = calc.pop();//se saca el primer numero
                        int n2 = calc.pop();//se saca el segundo numero
                        int newNumdiv = n1/n2;//se realiza la operacion
                        calc.push(newNumdiv);//se ingresa el nuevo numero
                       }
                       
                       if((int)lines.charAt(i)==42){//caso de multiplicacion
                           int n3 = calc.pop();
                           int n4 = calc.pop();
                           int newNumMult = n3*n4;
                           calc.push(newNumMult);
                           
                       }
                       
                      if ((int)lines.cahrAt(i)==43){//caso de suma
                          int n5=calc.pop();
                          int n6=calc.pop();
                          int newSuma  = n5+n6;
                          calc.push(newSuma);
                          }
                      
                      if ((int)lines.charAt(i)==45){//caso de la resta
                          int n7=calc.pop();
                          int n8=calc.pop();
                          int newSub = n7-n8;
                          calc.push(newSub);
                         }
                   
                       }
                  }
                    
                }
            }
        
        catch(Exception e){
            e.printStackTrace();
            
        }
        
        finally{
            try{
            if(null!=lector){
                lector.close();
            }
            }
           catch(Exception e){
               e.printStackTrace();
           }
        }
     
        System.out.println("Resultado final: " + calc.peek());   //indica el resultado final
    }
        
     
        
}
